看我如何发现特斯拉 Model 3 中的 XSS 漏洞并赢得1万美元
编译:奇安信代码卫士团队
我最有意思的黑客经历是黑掉特斯拉 Model 3。这款车型具备内置 web 浏览器、免费的优质 LTE,以及无线软件更新功能。这款车型就像是装了联网计算机的车轮,运转飞快。
今年年初我打算买一辆,买来后很高兴地摆弄驾驶了一番。我一直待在车库里捣鼓,让它做一些有悖于其用途的事,所幸最后发现了一些有意思的点。
我玩的第一个功能是Model 3 的“命名你的车辆”功能。该功能是让用户为爱车起个昵称并保存到用户账户,这样用户就会在移动 app 上看到发出的通知(如充电完成)。
最开始,我起的昵称是“%x.%x.%x.%x”,想看看它是否易受如 2011宝马 330i 曾受到的格式字符串攻击,但没发现什么异样。
之后我又花了点时间摆弄输入,发现允许输入的内容长度非常长。我决定将昵称改为“myXSS hunter payload”,之后又开始把玩车辆的其它功能。
我还花了很长的时间摆弄内置 web 浏览器。虽然在远程的情况下我也奈何不了该功能,但在让它加载文件或奇怪的 URI 方面还是得到了不少乐趣。
当天晚上没发现什么异常情况,于是就此收手。不过我忘了已经把昵称设置为 blind XSS payload。
在一次旅途中,一块不知来自何方的巨石砸破了挡风玻璃。
于是我使用了特斯拉提供的 app 支持功能预约了售后并继续驾驶。
一天后,我收到的回复称有人正在调查此事。我查看了”myXSS hunter”后发现了非常耐人寻味的东西。
易受攻击的页面 URL:
https://garage.vn.teslamotors.com/vehicles/695057517/vitals
执行源:
https://garage.vn.teslamotors.com
参考:
https://garage.vn.teslamotors.com/vehicles/5YJ31337
响应了被砸破的挡风玻璃的其中一个代理在“garage.vn.teslamotors.com”域名上下文中“点燃”了我的 XSShunter payload。
这太让人兴奋了。
附加在 XSShunter 的截屏显示,该页面用于查看车辆的重要数据并可通过 URL 增量车辆 ID 进行访问。参照的头部信息参数是车辆的 VIN 号码。
XSS 漏洞针对的是用于拉动特拉斯车辆管理的仪表盘。
附加的 XSShunter 截屏中显示出当前的车辆信息,如车速、温度、版本号、轮胎压力等,车辆是否被锁定、发出警报等细节信息。
VIN: 5YJ3E13374KF2313373
Car Type: 3 P74D
Birthday: Mon Mar 11 16:31:37 2019
Car Version: develop-2019.20.1-203-991337d
Car Computer: ice
SOE / USOE: 48.9, 48.9 %
SOC: 54.2 %
Ideal energy remaining: 37.2 kWh
Range: 151.7 mi
Odometer: 4813.7 miles
Gear: D
Speed: 81 mph
Local Time: Wed Jun 19 15:09:06 2019
UTC Offset: -21600
Timezone: Mountain Daylight Time
BMS State: DRIVE
12V Battery Voltage: 13.881 V
12V Battery Current: 0.13 A
Locked?: true
UI Mode: comfort
Language: English
Service Alert: 0X0
另外,还有一些关于固件、CAN 查看器、地理围栏位置、配置和听起来很有意思的内部代码名称,如“Tesladex 信息”。
我尝试浏览 URL “garage.vn.teslamotors.com”但被提示超时,因此它很可能是一个内部应用。
耐人寻味的是,实时支持代理能够将更新发送给汽车并很有可能修改车辆配置。我猜测该功能基于 DOM 中的不同超链接。虽然我并未尝试该功能,但攻击者可能通过=发送至核心端点的增量 ID,提取并修改其它车辆的信息。
如果我是尝试实施攻陷行为的攻击者,我很可能必须提交一些支持请求,但我最终将通过查看 DOM 和 JavaScript 来获悉足够的环境知识,并伪造请求为所欲为。
在凌晨快2点时(驾驶了11个小时),我向特斯拉漏洞奖励计划发送漏洞报告。他们将报告定为 P1级做了注释并在12小时内推出热补丁。
我无法复现这种情况。两周左右之后,特斯拉颁发了1万美元的奖励金并表示我提出的疑问是一个严重问题。
回过头来想想,这个问题非常简单但确实是长期遭忽视。尽管我无法确认该漏洞的真正影响,但似乎影响巨大,至少可导致攻击者查看车辆的实时信息,很可能也可以查看客户的信息。
2019年6月20日06:27:30 (UTC):提交报告
2019年6月20日 20::35:35 (UTC):确认问题并推出热补丁
2019年7月11日16:07:59 (UTC):颁发奖金,解决漏洞
最后,我认为特斯拉的漏洞奖励计划非常棒,他们为尝试黑掉特斯拉的善意研究人员提供了安全港。如果你不幸搞砸了,他们甚至还提供支持以修复该问题。
原文链接
https://samcurry.net/cracking-my-windshield-and-earning-10000-on-the-tesla-bug-bounty-program/
题图:Pixabay License
本文由奇安信代码卫士编译,不代表奇安信观点,转载请注明“转自奇安信代码卫士 www.codesafe.cn”。
奇安信代码卫士 (codesafe)
国内首个专注于软件开发安全的产品线。